Date: Mon, 11 Nov 1996 02:02:25 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Wed, 15 May 1996 17:54:19 GMT
Content-length: 8973

<html>
<head>
<title>CS 537 - Introduction to Operating Systems - Spring 1996</title>
</head>

<body>
<table border=0 width=100% align=center>
<tr>
<td width=25%><td width=50% align=center>
<b>UNIVERSITY OF WISCONSIN-MADISON
<br>
Computer Sciences Department</b>
<td width=25%>
<tr>
<tr>
<td>
<b>CS 537
<br>
Spring 1996 </b>
<td><td align=right><b>Bart Miller</b>
<tr>
<td>
<td align=center><b>CS 537: Introduction to Operating Systems</b>
<td>
</table>

<h2>New Stuff</h2>
<ul>
<li>
<b><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><a href=http://www.cs.wisc.edu/~bart/537/CURRENT.SCORES.html>Final grades</a> are posted.</b>
<li>
Problem Sets 1 and 2 are available (2/17/96).
<li>
Programming Assignment 3 is available (3/31/96).
<li>
Quizzes 1-10 and answers are available (5/1/96).
<li>
Sections 1-28 of the lecture notes are ready for reading and printing (4/29/96).
</ul>
<h2>Class Staff</h2>
<b>Instructor:</b> Bart Miller
<br>
<i>email:</i> <tt>bart@cs.wisc.edu</tt>
<br>
<i>Office: 6381 CS
<br>
Phone: 263-3378
<br>
Office hours: Wednesday/Friday 1030-noon
or by appointment.
</i>
<p>
<b>TA:</b> Karuna Muthiah
<br>
<i>email:</i> <tt>muthiah@cs.wisc.edu</tt>
<br>
<i>Office: 1343 CS
<br>
Phone: 262-5596
<br>
Office hours: Monday 1100-1300 and Wednesday 1400-1600.
</i>
<p>
<b>TA:</b> Jonathan Weyers
<br>
<i>email:</i> <tt>weyers@cs.wisc.edu</tt>
<br>
<i>Office: 1304 CS
<br>
Phone: 262-6601
<br>
Office hours: Monday/Friday 1400-1530 and Wednesday 1600-1700.
</i>

<h2>Course Materials</h2>
<ul>
<li>
The course is organized around my lecture notes.
The
<!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><a href="http://www.cs.wisc.edu/~bart/537/lecturenotes/titlepage.html">
lecture notes
</a>
are available on the class Web page.
<li>
You will need the textbook
<i>Modern Operating Systems</i>,
by Tanenbaum.
<li>
For the programming
assignments, you should purchase a copy of
<i>Object-Oriented Programming Using C++</i>
by Pohl, or whatever is your favorite C++ book.
</ul>
<p>
The lecture notes are available now.
You should read the first section before coming to class.
<i>Modern Operating Systems</i>
and
<i>Object-Oriented Programming Using C++</i>
are available in the book store.

<h2>Lectures and Discussion Sections</h2>
<b>Lecture times:</b>
Tuesday/Thursday 1300-1415
<br>
1221 Computer Sciences
<p>
<b>Discussion section:</b>
Wednesday 1300-1350
<br>
168 Noland
<p>
Note that there is the extra (Wednesday at 1300) discussion section.
This section will be used mainly as a recitation section to discuss material
covered in lecture and for the weekly quizzes.
On occasion, it will be used to discuss important details of
the programming assignments and homeworks.
Make sure that you leave room in your schedule to attend this section.
<h2>Exams/Quizzes</h2>
There will be no midterms.
The final is optional.
<p>
Each week, starting the second week of classes, there will be a quiz in the
Discussion Section.
The quizzes will last 15-30 minutes.
Following are the past quizzes with answers:
<ol>
<li>
<!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz1.html">Processes and concurrency</a>,
February 7.
<li>
<!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz2.html">Semaphores</a>,
February 14.
<li>
<!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz3.html">Monitors</a>,
February 21.
<li>
<!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz4.html">Messages</a>,
February 28.
<li>
<!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz5.html">Scheduling & Synchronization</a>,
March 6.
<li>
<!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz6.html">Segmentation & Paging</a>,
March 27.
<li>
<!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz7.html">TLB's</a>,
April 10
<li>
<!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz8.html">Demand Paging</a>,
April 17
<li>
<!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz9.html">File Systems</a>,
April 24
<li>
<!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><a href="http://www.cs.wisc.edu/~bart/537/quizzes/quiz10.html">File Systems and Recovery</a>,
May 1
</ol>

<h2>Programming Assignments</h2>
There will be about four programming assignments during the semester.
Details on these assignments will be given in class handouts.
These assignments will be written in C++ and done on workstations running
UNIX.
It is unlikely that you will be able to do all these assignments on your personal
computer.
<ul>
<li>
<!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><a href="http://www.cs.wisc.edu/~bart/537/programs/program1.html">Programming assignment #1</a>
is available.
The goal of this assignment is to practice using C++, learn some UNIX system
facilities, and try to write a really input-tolerant program.
<li>
<!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><a href="http://www.cs.wisc.edu/~bart/537/programs/program2.html">Programming assignment #2</a>
is available.
The goal of this assignment is to write a program that uses multiple processes
and synchronization.
<li>
<!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><a href="http://www.cs.wisc.edu/~bart/537/programs/program3.html">Programming assignment #3</a>
is available.
You are to write a simulator for CPU scheduling algorithms; you will use
traces of activities on a real UNIX systems to drive your simulation.
The goals of this assignment are to
(1) learn more about the CPU scheduling algorithms,
(2) learn about trace-driven simulation,
and
(3) experiment with quantitatively analyzing a computer system.
</ul>

<h2>Written Problem Sets</h2>
During the semester, I will hand out several
written problem sets based on the lectures.
These problem sets are for your use and do not need to be turned in.
<i>Though, you will find that you will do poorly on the weekely quizzes, if you
don't do the problems</i>
Solution sets for the problem will be handed out about two weeks after the
problem set.
The TA and I will be happy to answer questions on these problems and
look over your solutions.
<ul>
<li>
<!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><a href="http://www.cs.wisc.edu/~bart/537/homeworks/hw1.html">Problem Set #1</a>
is available.
The goal of this assignment is to learn about using the various synchronization
primitives to solve problems.
<li>
<!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><a href="http://www.cs.wisc.edu/~bart/537/homeworks/hw2.html">Problem Set #2</a>
is available.
The goal of this assignment is to learn memory management hardware and software.
</ul>

<h2>Late Work</h2>
Assignments are due at 5 p.m. on the date listed on the handout.
Over the entire semester,
you have
<b>three late days</b>
of credit.
You can use these late days on different assignments (e.g., one day on each
of three assignments) or all three days on one assignment.
Other than these three days,
<b>absolutely no late work will be accepted.</b>
<p>
Late days <b>cannot</b> be used on any assignment
that is due during the last week
of classes.

<h2>Cheating</h2>
Programming assignments will be done with partners.
Each group of two will work independently from other groups.
<p>
Cheaters will receive the maximum penalties, which include receiving
an ``F'' grade for the course and having this marked on your transcript.

<h2>Computer Facilities</h2>
We will (probably) be using the Solaris (UNIX) workstations for this course.
These are UNIX workstations, running the Sun Solaris operating systems and X windows.
All students who have registered for this class should have an account.

<h2>Grading Policy</h2>
<table border=0 align=center>
<tr><td align=left colspan=2 width=50%>If you don't take the final: <hr>
    <td>      
    <td align=left colspan=2 width=50%>If you take the final: <hr>
<tr><td>Programming assignments:<td align=right>40%<td>  
    <td>Programming assignments:<td align=right>30%
<tr><td>Quizzes:<td align=right>60%<td>  
    <td>Quizzes:<td align=right>45%
<tr><td>Final:<td align=right>0%<td>  
    <td>Final:<td align=right>25%
</table>
<p>
Your lowest quiz grade will be dropped from the average; there will be
no quiz during the first week nor during the week after Spring break.
If you take the final exam, it will be counted as above.
In the past, when I've taught this class, the class GPA has been in
the range of 2.9-3.1.

<h2>Class Schedule</h2>
The following schedule is tentative and could (and probably will) change:
<p>
<table border=3 width=100% align=center cellpadding=1 cellspacing=1>
<tr><td>Week 1
    <td>January 23 & 25
    <td>Introduction and overview, processes
<tr><td>Week 2
    <td>January 30 & February 1
    <td>Dispatching, process creation
<tr><td>Week 3
    <td>February 6 & 8
    <td>Cooperating processes, synchronization
<tr><td>Week 4
    <td>February 13 & 15
    <td>Semaphores
<tr><td>Week 5
    <td>February 20 & 22
    <td>Semaphores, monitors
<tr><td>Week 6
    <td>February 27 & 29
    <td>Messages, deadlocks
<tr><td>Week 7
    <td>March 5 & 7
    <td>OS debugging strategies, dynamic memory allocation
<tr><td>
    <td>March 12 & 14
    <td><i>Spring Break</i>
<tr><td>Week 8
    <td>March 19 & 21
    <td>Relocation
<tr><td>Week 9
    <td>March 26 & 28
    <td>Segmentation, Paging, TLBs
<tr><td>Week 10
    <td>April 2 & 4
    <td>Virtual memory, page replacement, thrashing
    <!--<i>No class Thursday</i>-->
<tr><td>Week 11
    <td>April 9 & Nov. 11
    <td>Working sets, I/O devices, files
<tr><td>Week 12
    <td>April 16 & 18
    <td>Disk allocation and scheduling, directories
<tr><td>Week 13
    <td>April 23 & 25
    <td>Protection
<tr><td>Week 14
    <td>April 30 & May 2
    <td>Security, advanced topics (readings)
<tr><td>Week 15
    <td>May 7 & 9
    <td>Advanced topics (readings)
<tr><td>Finals
    <td>May 14
    <td>Final Exam (Tuesday, 5:05pm)
</table>

<hr>
<H4>
Last modified:
Wed May 15 12:54:17 CDT 1996
by
<!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><a href="http://www.cs.wisc.edu/~bart">bart</a></b>
</H4>
</body>
